/*
 * DML involucra insert ,update ,delete
 */
package Probando;

import static Probando.Consultas.driver;
import com.acme.impl.EstadoDAOImpl;
import com.acme.bean.Estado;
import com.acme.bean.EstadoPK;
import com.acme.exception.EstadoException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 *
 * @author Alumno-CT
 */
public class DataManipulationLanguage {

    static EstadoDAOImpl Servicio = new EstadoDAOImpl();
    static String driver = "com.mysql.jdbc.Driver";
    //puerto de mysql 3306
    //servidor: de base de datos localhost
    //scheme: ventas
    static String url = "jdbc:mysql://localhost:3306/ventas";
    static String sql = "";
    static String user = "root";
    static String pass = "mysql";

    public static void main(String[] args) {
        Connection conn = null;
        try {
            //Registrando el Driver
            Class.forName(driver);
            //Conectando a la Base de datos

            conn = DriverManager.getConnection(url, user, pass);
            //insertar(4, "prueba", 1, conn);
            EstadoPK pk = new EstadoPK(5);
            //Estado bean = new Estado(3, "Descartados", 1);
            //actualizar(pk, bean, conn);
            delete(pk,conn);

        } catch (SQLException e) {
            System.out.println("Fallo la conexion " + e.getMessage());
        } catch (ClassNotFoundException ex) {
            System.out.println("Fallo el registro del Driver" + ex.getMessage());
        } catch (EstadoException ex) {
            System.out.println("Fallo el registro del Driver" + ex.getMessage());
        } finally {
            try {
                //cerrar la conexion
                conn.close();
            } catch (SQLException ex) {
                System.out.println("No se pudo cerra la conexión");
            }
        }
    }

    private static void insertar(int id, String nombre, int estado, Connection conn) throws EstadoException {
        Estado bean = new Estado(id, nombre, estado);
        Servicio.insert(bean, conn);
        //CONSULTA
        consultar(conn);
    }

    private static void actualizar(EstadoPK pk, Estado bean, Connection conn) throws EstadoException {
        Servicio.update(pk, bean, conn);
        //CONSULTA
        consultar(conn);
    }
    
    private static void delete(EstadoPK pk, Connection conn) throws EstadoException {
        Servicio.delete(pk, conn);
        //CONSULTA
        consultar(conn);
    }

    private static void consultar(Connection conn) throws EstadoException {
        Estado[] arreglo = Servicio.findAll(conn);
        for (int i = 0; i < arreglo.length; i++) {
            System.out.println(arreglo[i]);
        }
    }
}
